package com.heima.media.controller;

import com.heima.common.dto.ResponseResult;
import com.heima.media.dto.ChannelDto;
import com.heima.media.entity.WmChannel;
import com.heima.media.service.IWmChannelService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

@RestController
@RequestMapping("api/v1/channel")
@Api(tags = "频道管理API")
public class ChannelController {

    // 注入服务层接口
    @Autowired
    private IWmChannelService channelService;

    /**
     * 分页查询频道列表
     *
     * @param dto
     * @return
     */
    @PostMapping("list")
    @ApiOperation(value = "分页查询频道列表", notes = "Author:mcm")
    @ApiImplicitParam(name = "dto", value = "请求对象", required = true, dataType = "ChannelDto")
    public ResponseResult listByPage(@RequestBody ChannelDto dto) {
        // 怎么接收请求头中的参数?
        // 1. @RequestHeader("userId") Integer userId
        // 2. HttpServletRequest request.getHeader("userId")
        // 3. 使用拦截器

        return channelService.listByPage(dto);
    }

    /**
     * 新增频道
     *
     * @param channel
     * @return
     */
    @PostMapping
    @ApiOperation(value = "新增频道", notes = "Author:mcm")
    @ApiImplicitParam(name = "channel", value = "频道对象", required = true, dataType = "WmChannel")
    public ResponseResult saveChannel(@RequestBody WmChannel channel) {
        return channelService.saveChannel(channel);
    }


    /**
     * 查询所有频道
     * @return
     */
    @GetMapping("channels")
    public ResponseResult channels(){
        List<WmChannel> list = channelService.list();
        return ResponseResult.okResult(list);
    }
}
